Spring Web框架
Spring提供了自己的Web框架(Spring MVC),也可以方便集成其他第三方WEB框架,比如Status2等;
首先我们来看一下Spring配置,该配置不是特定于任何一个Web框架的,下面以集成SpringMVC框架为列来进行介绍
新建WEB工程
Sping通用配置
WEB.XML配置
web.xml初始化配置
|
|
<web-app version="3.0">
表示采用Servlet 3.0规范的Web程序部署描述格式
指定Web应用上下文实现
在Web环境中,Spring提供WebApplicationContext(继承ApplicationContext)接口用于配置Web应用,该接口应该被实现为在Web应用程序运行时只读,即在初始化完毕后不能修改Spring Web容器(WebApplicationContext),但可能支持重载。
Spring提供XmlWebApplicationContext实现,并在Web应用程序中默认使用该实现,可以通过在web.xml配置文件中使用如下方式指定:
|
|
如上指定是可选的,只有当使用其他实现时才需要显示指定。
容器的实现可以参看第二篇Spring IOC
指定Spring配置文件
容器默认情况下将加载/WEB-INF/applicationContext.xml配置文件,也可以使用如下形式在web.xml中定义要加载自定义的配置文件,多个配置文件用“,”。
|
|
加载和关闭Spring Web容器
Spring使用ContextLoaderListener监听器来加载和关闭Spring Web容器,即使用如下方式在web.xml中指定:
|
|
ContextLoaderListener监听器将在Web应用启动时使用指定的配置文件初始化Spring Web容器,在Web应用关闭时销毁Spring Web容器
在Web环境中获取Spring Web容器
- 使用 WebApplicationContextUtils
|
|
如果当前Web应用中的ServletContext 中没有相应的Spring Web容器,对于getWebApplicationContext()方法将返回null,而getRequiredWebApplicationContext()方法将抛出异常
- 使用 ApplicationContextAware
代码
|
|
测试
|
|
只要类实现ApplicationContextAware 接口即可,这样就可获取上下文中所有bean。
集成SpingMVC
WEB.XML配置
Spring提供的前端控制器(DispatcherServlet),所有的请求都有经过它来统一分发。
|
|
dispatcher_servlet.xml配置
这个是指SpringMVC的配置
|
|
Controller代码
|
|
启动tomcat,访问controller
总结
1.此处只是简单的整合SpirngMVC,返回JSON数据;
2.SpringMVC的详细功能介绍可以参看官网
异常总结
我们在UserController代码中只用了 @Qualifier(value="userServiceImpl")
,因为@Autowired
默认根据类型自动装配,如果当Spring上下文中存在不止一个userServiceImpl类型的bean时,就会抛出BeanCreationException异常,见以下异常代码,所以我们需要使用@Qualifier
来配合指定具体的Bean。
|
|